// 这里封装各种请求
import axios from 'axios'

export function request(config) {
  //1.创建axios实例
  const instance = axios.create({
    baseURL: 'http://www.liulongbin.top:3005',
    // `timeout` 指定请求超时的毫秒数(0 表示无超时时间)
    // 如果请求话费了超过 `timeout` 的时间，请求将被中断
    timeout: 5000
  })

  //2.axios的拦截器
  //2.1请求拦截器的作用
  instance.interceptors.request.use(
    config => {
      return config
    },
    err => {
      return err
    }
  )

  //2.2响应拦截器
  instance.interceptors.response.use(
    response => {
      return response.data
    },
    err => {
      if (err && err.response) {
        switch (err.response.status) {
          case 400:
            err.message = '请求错误'
            break
          case 401:
            err.message = '未授权的访问'
            break
        }
      }
      return err
    }
  )

  //3.发送真正的网络请求 instance就是一个promise对象
  return instance(config)
}
